package com.jinly.ryder.log.client.dto;

import com.alibaba.fastjson.annotation.JSONField;
import lombok.Data;

import java.util.List;

@Data
public class ExtractRuleDTO {

    /**
     * 时间字段的 key 名字
     */
    @JSONField(name = "time_key")
    private String time_key;

    /**
     * 时间字段的格式，参考 C 语言的strftime函数对于时间的格式说明
     */
    @JSONField(name = "time_format")
    private String timeFormat;

    /**
     * 分隔符类型日志的分隔符
     */
    @JSONField(name = "delimiter")
    private String delimiter;

    /**
     * 多行日志类型的 整条日志匹配规则
     */
    @JSONField(name = "log_regex")
    private String logRegex;

    /**
     * 多行日志类型的行首匹配规则
     */
    @JSONField(name = "beginning_regex")
    private String beginningRegex;

    /**
     * 提取的每个字段的 key 名字
     */
    @JSONField(name = "keys")
    private List<String> keys;

    /**
     * 需要过滤日志的 key
     */
    @JSONField(name = "filter_keys")
    private List<String> filterKeys;

    /**
     * 上述字段 filter_keys 对应的值，个数与 filter_keys 相同，一一对应
     */
    @JSONField(name = "filter_regex")
    private List<String> filterRegex;

}
